home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWViews / FWSclBar.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  3.4 KB  |  114 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWSclBar.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWSCLBAR_H
  11. #define FWSCLBAR_H
  12.  
  13. #ifndef FWCONTRL_H
  14. #include "FWContrl.h"
  15. #endif
  16.  
  17. #ifndef FWRUNTYP_H
  18. #include "FWRunTyp.h"
  19. #endif
  20.  
  21. #ifndef FWNOTIFR_H
  22. #include "FWNotifr.h"
  23. #endif
  24.  
  25. #ifndef FWNOTIFN_H
  26. #include "FWNotifn.h"
  27. #endif
  28.  
  29. #ifndef FWPRIDEB_H
  30. #include "FWPriDeb.h"
  31. #endif
  32.  
  33. //========================================================================================
  34. //    Foward class declarations
  35. //========================================================================================
  36.  
  37. class FW_CViewContext;
  38. class FW_CActivateEvent;
  39. class FW_CPrivBaseScroller;
  40.  
  41. //========================================================================================
  42. //    CLASS FW_CScrollBar
  43. //========================================================================================
  44.  
  45. class FW_CScrollBar : public FW_CNativeControl
  46. {
  47. // ----- Constants
  48. public:
  49.     FW_DECLARE_AUTO(FW_CScrollBar)
  50.     
  51.     enum { kDefaultScrollMin =  0, kDefaultScrollMax = 100, kDefaultScrollPos = 0 };
  52.     
  53. // ----- Initialization/destruction
  54.     FW_DECLARE_CLASS
  55.  
  56.     FW_CScrollBar(Environment* ev, 
  57.                   FW_CSuperView* container,
  58.                   const FW_CRect& bounds,
  59.                   ODID id);
  60.     FW_CScrollBar(Environment* ev);
  61.     virtual ~FW_CScrollBar();
  62.  
  63. // ----- Inherited API
  64.     virtual void        DoActivateEvent(Environment *ev, const FW_CActivateEvent& theActivateEvent);
  65.     virtual void        ControlClicked(Environment *ev, FW_ControlValue value, ODFacet* facet);
  66.                                         
  67. // ----- New API
  68.     virtual void        SetMinorScrollUnits(Environment *ev, FW_Fixed units);
  69.     FW_Fixed            GetMinorScrollUnits(Environment *ev) const;
  70.     
  71.     virtual void        SetMajorScrollUnits(Environment *ev, FW_Fixed units);
  72.     FW_Fixed            GetMajorScrollUnits(Environment *ev) const;
  73.  
  74.     virtual void        SetScrollMax(Environment *ev, FW_Fixed units);
  75.     FW_Fixed            GetScrollMax(Environment *ev) const;
  76.     
  77.     virtual void        SetScrollMin(Environment *ev, FW_Fixed units);
  78.     FW_Fixed            GetScrollMin(Environment *ev) const;
  79.     
  80.     virtual void        SetScrollPos(Environment *ev, FW_Fixed units);
  81.     virtual void        SetScrollPos(Environment *ev, FW_Fixed range, FW_Fixed pos);
  82.     FW_Fixed            GetScrollPos(Environment *ev) const;
  83.     
  84.     void                ScrollPositionChanged(Environment *ev, FW_Fixed delta, 
  85.                                         FW_Boolean shouldlScroll = TRUE);
  86.  
  87.     static FW_CPoint    GetDefaultScrollBarSize();
  88.  
  89.     FW_XYSelector        ScrollingDirection(Environment *ev) const;
  90.                 
  91. // ----- Archiving -----
  92.     static void*        Create(FW_CReadableStream& stream, FW_ClassTypeConstant type);
  93.     static void            Destroy(void* object, FW_ClassTypeConstant type);
  94.     virtual void        Flatten(Environment*ev, FW_CWritableStream& stream) const;
  95.     virtual void        InitializeFromStream(Environment*ev, FW_CReadableStream& stream);
  96.  
  97. // ----- Internal API -----
  98.     void                PrivAttachToScroller(Environment*ev, FW_CPrivBaseScroller* scroller);
  99.     
  100. protected:
  101.     // ----- Internal use only
  102.     virtual FW_Boolean     PrivSetValue(Environment* ev, FW_ControlValue value, ODFacet* facet);
  103.  
  104. private:
  105.     void                 Initialize(Environment *ev, FW_ControlValue value, 
  106.                                     FW_ControlValue min,FW_ControlValue max);
  107. private:
  108.     FW_Fixed                fMinorScrollUnits;
  109.     FW_Fixed                fMajorScrollUnits;
  110.     FW_CPrivBaseScroller*    fScroller;
  111. };
  112.  
  113. #endif
  114.